/**
 *
 * author caiyong.you at 2017年2月23日
 */
package org.cloud.simple.helloworld;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.google.common.collect.Maps;

/**
 * @author caiyong.you
 *
 */
public class JinjieTest {

	private Logger logger = LoggerFactory.getLogger(getClass());

	public static final String partnerPrivateKey = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDIi_LVmjZsZsfiNBUg5FhkhIqVryQdsTSEb6CjOJvweMugOQ97AwReznfaT4AfAhxQGKRUgaQxc1Gd32mDBvzOssgZ13-cW27Gvyw4kqVTHTMJ9XwQk0xNUgFYTlo6SIDHy90VIGBNc82x7oAHXUzxXGQCSO-AqU7GOZ5SrmRaprZk4vQcdJA6rogFxxMWl1MYq7EKFA1Qu4AJOxl3P4W99LmOFuH_1FTThYwAxGxdwB8QEqK3G9QZaoCO8mWTuELEcnkbkheKG8p0r8xPj_4hFixT_TgeRuVPEK5YqMrSJiVdQAAkGuw-w8oIOluDvnppcTkhCrA4VUnmTBlDzikNAgMBAAECggEAA1H10j18Wy0UcBVGqEW_hOKA3NuKcIdnhC3I7grY4hFN5bgsHnA9WUh3yYB5cYn6aAUQa2m-CyeKmV-Cgq3R76YcE_lyXmdRHS87DzC2VfrsxmRvCmM15y3NYeXiLobWwvgID_p6Pa4GIMT_D6AmzvQln7gPZwTmjfeUPHAwryN95z7e_60COU6ACkVImJgI-XXQtxT7fv-Gdt52HlDEMh6HjkLUhi3ryPzB5AMPcAl6O9yFwbLP53v2KdnH1LtueB-xCgLYv61-pi_HPS1fk99c7fJEwtvyGT-4eIDMkOicz2Mf3ziOsfW8aJa_Wv-LFSJDMNyct7kLNVbrfgl_QQKBgQD3u91TMVXYrliNZEMmOmPdoC3RMidwC_OpLYIU9IlJcneK8P6lW9qnzKISoDRuMWafE9bijPPWKpoobjUjVXI5dRcYUJDsG6ySuWBJiJF5-_eXUB3qj8pXe0JcA0W5plvgBiMZTdCXQn2w4r5YaKjsk8zDKXCpj4XSUxqy1C1yXQKBgQDPPQM2JHPqrH1MyzN_4fNiPgbquJ1vvGZI9mbpbfnUvfyrPer8dhjUNyEVoIPahcrs6WpSZfO0uFefqdYbqc1rzckNz4O0J9RcYNfJVdUMOiHumeLpP_xyLQkjU-hcCNQCzc76ky5GPBz0-GHV3Upi-AJKScHDknOzahu7n0qGcQKBgEP2MtqOz0k5Uyu-1LkZDaqQNeGNC8quTLMdu_D5wOv4Thk80e8VSt_7wH6xmpCcVtXPQIU4O_CGEXKEAWnnGAXxPFu8RnWvheFen66sm5RGbn8BSKO_vLfRJbxOXYN3wv6rUFexxEaqxAaRvbxNQgJc7bCgnrq1l_XCPLHQiYM1AoGBAK7QRcw_NbTo6g2Ef53JiRf_QLBxKQUfRJ0ZlTgluBAYb3I4Gef66vjgxDzNGUyVfdcZEsINFGYG9otNpbnSI-FjRs0qlmu7CW0fmAdTKxNUWlk-YGXnvtjFWqb9Wc2A-O6gk49V5jwC615Nw6G3OM-Ba9UkoJmMCaN3x4seVKxRAoGBAPNGIC_aot90sH3AWAAwxL6CYIf3xWNiSo1f45iDLsZFJdeOqk-f4dkviz3OH7fH6eZ5MhuSARDsVPkCe_Y8voeDxE69Fjksw6GbisYEKwQ5IiPx7hFvMFLA36S6FT7bNmQR2Bsr1p1o09rELQ-ctEHHFXNjjqFTZut31eJO-zRO";
	public static final String partnerPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyIvy1Zo2bGbH4jQVIORYZISKla8kHbE0hG-gozib8HjLoDkPewMEXs532k-AHwIcUBikVIGkMXNRnd9pgwb8zrLIGdd_nFtuxr8sOJKlUx0zCfV8EJNMTVIBWE5aOkiAx8vdFSBgTXPNse6AB11M8VxkAkjvgKlOxjmeUq5kWqa2ZOL0HHSQOq6IBccTFpdTGKuxChQNULuACTsZdz-FvfS5jhbh_9RU04WMAMRsXcAfEBKitxvUGWqAjvJlk7hCxHJ5G5IXihvKdK_MT4_-IRYsU_04HkblTxCuWKjK0iYlXUAAJBrsPsPKCDpbg756aXE5IQqwOFVJ5kwZQ84pDQIDAQAB";
	public static final String msxfPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoSwx7_ByU0cVeaeetQnraNQwF5Yh0peZSl2P5W1FU4r8-SvnpQtRmfA6GwtWjsZRPEheVonRpYj6pHGfcYHhoyoyx7TCAUBYPZobRJ4eUyvtTCzZazEb-vZGWOSxE1rq5KPOmq44TnhDWi0AhunpStXY9C8_vtom9uDpKoS3un5aASeqYHqCnTlDH9A5LgCS4ipN3x5qmZL9iivkkwShTG3I0Rpg-z_618WD6-b85ai1wkbuyLgf8VsW43H_9FGcYvGGsOrb5vBzPM5ev4EEuubHujUod5hA4aosw3oySquVANRRDbnIlJIHbxMxKd0_mYp1dEgA7ol1f27oe3K3RQIDAQAB";
	public static final String msxfPrivateKey = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQChLDHv8HJTRxV5p561Ceto1DAXliHSl5lKXY_lbUVTivz5K-elC1GZ8DobC1aOxlE8SF5WidGliPqkcZ9xgeGjKjLHtMIBQFg9mhtEnh5TK-1MLNlrMRv69kZY5LETWurko86arjhOeENaLQCG6elK1dj0Lz--2ib24OkqhLe6floBJ6pgeoKdOUMf0DkuAJLiKk3fHmqZkv2KK-STBKFMbcjRGmD7P_rXxYPr5vzlqLXCRu7IuB_xWxbjcf_0UZxi8Yaw6tvm8HM8zl6_gQS65se6NSh3mEDhqizDejJKq5UA1FENuciUkgdvEzEp3T-ZinV0SADuiXV_buh7crdFAgMBAAECggEAMsikK4BN5aOeRqjkPxMTFALX7HanzZ1q9Z2pe5cEoyBGOZT19nEskx64kFDwQyiF7EK5RvdCEbCpmSscHD3ahPkE6xwvjQljRHXMZcCUuYw7xybSkw30TQ1QeS4GBZ0-KjDbJq4Cm-cVAdLwOZJ2qdfb9oT0xwQiBuQzU-xhn-cz1LTOSulbrPYfYGx8pDJeFZKWoJbs5rIInQJseKgLh6ECpauma2X_QBN-xOloofwAwa7cXeAaUFaVIFBsaU_HaOkiCNwdnMuZD8BMNPWCx1YBAtQJGGT6HhPXf9nxoeeTXYkryrcOvgkxQ8Vq3ng6coPceRg6BpCqDXJwtCrqQQKBgQDZRTV1zaOBrbkU7jTEExHssHnABIMaoZEePGzKzIJ-bxo3iJr8n5r3v-KfeYcoifESOA-qcK0fi1RqwLMy0Xo0cYE0BZl-YIed56khSdKHp93zKSUAnbQQXB9QbCq0_HQtLqMykmUDvNCcHNMhZDwOnfzOI31gg4_DdP06ziPTeQKBgQC95w4pK_kc-UwCYCwko7vqs4DyYThKa2mk_-eYlZVADSXRnZzFoyuvopm9MUmR6tinzvM7KTNwQ7MlvXd1natjLJDwu3T9HSr_lwgVJ0-Hs1gRecS1OObcaBy67Bt6SFNCK3G9tiHl4UClmbkytVnfM8IIDPiBvNZU0DJHHuUjLQKBgQCR3DmYnXYgT91J5OT9oQPOj2cc9qqBTWgcEVrEBumwMaw7DfVmlUu2-VYN08td9sUlgwdZWA2ReLsyc62Z9zGAVZb0srGqOumwo15S37l7osGJRdz2fejtdrr7BbLiD_16e63J_KfeC3tM4rkG2MDM21lllkPMcGYqRLbgLJW2mQKBgEVjCU-N26X0iQtNLJPup5joIbNuRm0ati0tu-eKsFAI_cqLdl7Ycfvow5fXTHRehO87tK_nK_5XHjwp8F4vUBIalJMBS4u4fp-JBdEE3hBNPV6VSYSV1_SsreK2pouVpaZFzXdt9xDRrxdTBdI7ZS0i8kCSzLJK112B_PzzkvG5AoGBAMA_7FgjMATpf1YLfRWZwHgWIBtK_lfVZN9LW3xV0PiirLXF5TGii281jyIhQ0AwpCqI-2vzZdsdGrvZpZP14cN-bk69fEu8bhdut2Ir0ep0EpuQwwVvszZaIrVORuHIufjeIJksFkGVq6uDoeSnYeFot5it1U5FQlJaqtc0N2Vd";

	/**
	 * 步骤2，申请单提交
	 */
	@Test
	public void testApplySubmit() {
		String partnerApplyNo = RandomStringUtils.randomNumeric(8);
		processed(applySubmitParam(partnerApplyNo), "msxf_loan_submit_approval");
	}

	/**
	 * 身份验证
	 *
	 * author caiyong.you at 2017年2月23日
	 */
	@Test
	public void testIdcardMatch() {
		Map<String, Object> dataMap = new HashMap<String, Object>();
		dataMap.put("userName", "游才勇");
		dataMap.put("userIdCard", "500382198411161497");
		dataMap.put("period", 2);
		dataMap.put("productCode", "4016");
		dataMap.put("outTradeNo", "123456789");

		processed(dataMap, "msxf.idcard.match");
	}

	/**
	 * 支付宝用户信息 https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=
	 * 2016031701220968&auth_skip=false&scope=auth_userinfo&redirect_uri=https%
	 * 3A%2F%2Fwww.baidu.com 
	 * author caiyong.you at 2017年2月23日
	 */
	@Test
	public void testUserInfo() {
		Map<String, Object> dataMap = new HashMap<String, Object>();
		dataMap.put("authCode", "36e69ea72a2e44f08b650f7daebcRE47");

		dataMap.put("productCode", "2306");
		dataMap.put("outTradeNo", "123456789");

		processed(dataMap, "msxf.alipay.userinfo");
	}

	/**
	 * 身份验证
	 *
	 * author caiyong.you at 2017年2月23日
	 */
	@Test
	public void testZhimaCredit() {
		Map<String, Object> dataMap = new HashMap<String, Object>();
		
		dataMap.put("userIdCard", "500382198411161497");
		dataMap.put("appKey", "DataServiceTest");
	

		dataMap.put("productCode", "4016");
		dataMap.put("outTradeNo", "123456789");

		processed(dataMap, "msxf.zhima.credit.auth");
	}


	@Test
	public void getContract() {
		Map<String, Object> dataMap = new HashMap<String, Object>();

		dataMap.put("contractNo", "2306012017030700006007");

		processed(dataMap, "msxf.contract.get");
	}

	@Test
	public void getPhoneAuth() {
		Map<String, Object> dataMap = new HashMap<String, Object>();

		dataMap.put("userIdCard", "500382198411161497");
		dataMap.put("userName", "游才勇");
		dataMap.put("userPhone", "15909384683");
		dataMap.put("productCode", "2306");

		processed(dataMap, "msxf.phone.auth");
	}

	@Test
	public void getFourAuth() {
		Map<String, Object> dataMap = new HashMap<String, Object>();

		dataMap.put("userIdCard", "500382198411161497");
		dataMap.put("userName", "游才勇");
		dataMap.put("userPhone", "15909384683");
		dataMap.put("bankCardNo", "5203456879854685");

		processed(dataMap, "msxf.psp.auth");
	}

	@Test
	public void checkFourSMSCode() {
		Map<String, Object> dataMap = new HashMap<String, Object>();

		dataMap.put("orderNo", "20171206090350956eb17e6a156814fd");
		dataMap.put("smsCode", "123456");
		processed(dataMap, "msxf.auth.msg.confirm");
	}

	@Test
	public void testSms() {
		Map<String, Object> dataMap = new HashMap<String, Object>();

		dataMap.put("contractNo", "20170412001101");
		dataMap.put("smsType", "2");
		dataMap.put("userPhone", "15909384683");
		dataMap.put("userName", "游才勇");
		dataMap.put("userIdCard", "500382198411161497");
		dataMap.put("bankCardNo", "500235684520146");


		processed(dataMap, "msxf.contract.sms");
	}
	/**
	 * 对账下载
	 * @create Jan 24, 2016 3:24:39 PM
	 * @author 玄玉<http://blog.csdn.net/jadyer>
	 */ 
	@Test
	public void fileDownload(){
		
		Map<String, String> dataMap = new HashMap<String, String>();
		dataMap.put("strDate", "20180612");
		dataMap.put("strType", "KJRepayRpt");
		
		Map<String, String> paramMap = new HashMap<String, String>();
		paramMap.put("timestamp", DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
		
		paramMap.put("version", "2.2");
		paramMap.put("sign", CodecUtil.buildRSASignByPrivateKey(JSON.toJSONString(dataMap), partnerPrivateKey));
		paramMap.put("data", CodecUtil.buildRSAEncryptByPublicKey(JSON.toJSONString(dataMap), msxfPublicKey));

		paramMap.put("appid", "KJ_FWC");
		paramMap.put("method", "msxf.ccs.file.download");
		//String reqURL = "http://172.16.31.145:8088/router/api";
		String reqURL = "http://localhost:8088/router/api";
		HttpUtil.postWithDownload(reqURL, JSON.toJSONString(paramMap), "application/json; charset=UTF-8");
	}

	/**
	 * 请求处理
	 * 
	 * @param dataMap
	 * @param method
	 */
	private void processed(Map<String, Object> dataMap, String method) {
		processed(dataMap, "KJ_FWC", method, "http://open12.msxf.lotest/router/api", Boolean.FALSE, null, null, null);// "http://weixinapitest.msxf.com/open/router/rest"
	}

	/**
	 * 请求处理
	 * 
	 * @param dataMap
	 * @param appid
	 * @param method
	 * @param reqURL
	 */
	private void processed(Map<String, Object> dataMap, String appid, String method, String reqURL, Boolean isFile,
			String fileName, String filePath, String fileBodyName) {

		Map<String, String> paramMap = Maps.newHashMap();
		paramMap.put("timestamp", DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
		paramMap.put("version", "2.2");
		paramMap.put("sign", CodecUtil.buildRSASignByPrivateKey(JSON.toJSONString(dataMap), partnerPrivateKey));
		paramMap.put("data", CodecUtil.buildRSAEncryptByPublicKey(JSON.toJSONString(dataMap), msxfPublicKey));
		paramMap.put("appid", appid);
		paramMap.put("method", method);
		if (isFile) {
			try {
				HttpUtil.postWithUpload(reqURL, fileName, new FileInputStream(new File(filePath)), fileBodyName,
						paramMap);
			} catch (FileNotFoundException e) {
				e.printStackTrace();
			}
		} else {
			String result = HttpUtil.post(reqURL, JSON.toJSONString(paramMap), "application/json; charset=UTF-8");
			Map<String, String> resultMap = JSON.parseObject(result, new TypeReference<Map<String, String>>() {
			});
			if ("0".equals(resultMap.get("code")) && StringUtils.isNotBlank(resultMap.get("data"))) {
				System.out.println(
						"data:" + CodecUtil.buildRSADecryptByPrivateKey(resultMap.get("data"), partnerPrivateKey));
			}
		}
	}

	/**
	 * 申请单提交参数
	 * 
	 * @return
	 */
	private Map<String, Object> applySubmitParam(String partnerApplyNo) {
		Map<String, Object> map = Maps.newHashMap();
		// - 合作方申请单号
		map.put("partnerApplyNo", partnerApplyNo);
		// map.put("loanType", "2");
		// - 申请类型 1.正常申请（默认）, 2.用户已签合同
		// map.put("type", Constants.APPLY_TYPE_SIGNING_AGREE);
		// - 贷款金额，单位：元，不允许小数，目前支持3000--10000元
		map.put("loanMoney", "500000");
		// - 贷款期数，固定可选值为6/9/12/15/18五个
		map.put("loanTerm", 3);
		// userLogonId
		// map.put("userLogonId","1223");
		// - 贷款用途
//		map.put("loanPurpose", "pl2.2");
		// - 是否加入寿险，只能传Y|N
		// map.put("useLifeInsurance", "N");
		// - 产品编码，4位数字
		map.put("productCode", "2302");
		// 市场产品
		map.put("marketProductCode", "19");
		// - 姓名
		map.put("userName", "郦远笔");
		// - 手机号
		map.put("userPhone", "13883482555");
		// 支付宝类型 1:支付宝登录id， 2:支付宝账号
		//map.put("aliType", AliTypeEnum.ALI_USER_LOGIN_ID.code());
		// 2088123456789012
		map.put("userLoginId", "2088123456789012");

		map.put("bankProvinceCode", "110000");
		map.put("bankCityCode", "110000");
		map.put("liveProvinceCode", "110000");
		map.put("liveCityCode", "110000");
		map.put("liveTownCode", "110000");

		// map.put("seameGrade","1");
		// - 身份证
		map.put("userIdCard", "500112198901014916");
		map.put("executeRate", "2.56");
		map.put("maritalStatus", "10");
		map.put("liveDetailAddress", "窦店镇兴隆庄");
		Map<String, Object> contactMap = Maps.newHashMap();
		contactMap.put("name", "李超然");
		contactMap.put("relation", "pl");
		contactMap.put("phoneNo", "13883482727");
		contactMap.put("address", "黑龙江省铁力市桃山林业局嘉和小区4号楼2单元201");

		List<Map<String, Object>> contactList = new ArrayList<>();
		contactList.add(contactMap);
		map.put("contactList", contactList);
		map.put("clientType", "PCBrowser");
		map.put("userIdentity","si");
		// map.put("premiumFee", 3212);
		return map;
		// - 银行行号，可选值见数据字典
		// map.put("bankCode", "0105");
		// - 银行分行省份编码，值为国家统计局最新县及县以上行政区划代码，
		// map.put("bankProvinceCode", "110000");
		// - 银行分行城市编码，值为国家统计局最新县及县以上行政区划代码
		// map.put("bankCityCode", "110111");
		// - 居住地省份编码，值为国家统计局最新县及县以上行政区划代码
		// map.put("liveProvinceCode", "110000");
		// - 居住地城市编码，值为国家统计局最新县及县以上行政区划代码
		// map.put("liveCityCode", "110000");
		// - 居住地区县编码，值为国家统计局最新县及县以上行政区划代码
		// map.put("liveTownCode", "110111");
		// - 居住地区详细地址
		//
		// - 住宅电话，格式为0451-12345678（区号最长5位，固话在个别地区为7位）
		// map.put("livePhone", );
		// - 婚姻状况，可选值见数据字典
		// map.put("maritalStatus", DataEnum.MARITAL_STATUS_20.getType());
		// - 常用电子邮件
		// map.put("email", );
		// - 教育程度，可选值见数据字典
		// map.put("education", "LE09");
		// - 工作单位任职部门
		// map.put("unitDepartment", );
		// - 工作单位现任职务，可选值见数据字典
		// map.put("unitPosition", );
		// - 工作单位电话号码，支持手机号或最长为14位的座机号，座机格式为0451-12345678
		// map.put("unitPhone", );
		// - 工作单位分机号
		// map.put("unitPhoneExt", );
		// - 其它收入，单位：分，最多允许99999999分
		// map.put("otherIncome", );
		// - 其它贷款，单位：分，最多允许99999999分
		// map.put("otherLoan", 0);
		// - 客户社会身份，可选值见数据字典
		// map.put("userIdentity", DataEnum.PRE_USER_IDENTITY_SI05.getCode());
		// if
		// (map.get("userIdentity").equals(DataEnum.PRE_USER_IDENTITY_SI01.getCode()))
		// {
		// //- 学校名称，userIdentity=SI01时必传
		// map.put("schoolName", "拉布拉多大学");
		// //- 学校地址
		//// map.put("schoolAddress", );
		// //- 学制，值为1--8的整数，userIdentity=SI01时必传
		// map.put("schoolLength", 4);
		// //- 入学时间，格式为yyyy-MM，userIdentity=SI01时必传
		// map.put("schoolEnterDate", "2004-09");
		// }

		// if
		// (map.get("userIdentity").equals(DataEnum.PRE_USER_IDENTITY_SI02.getCode())
		// ||
		// map.get("userIdentity").equals(DataEnum.PRE_USER_IDENTITY_SI04.getCode()))
		// {
		// //- 入职时间，格式为yyyy-MM，userIdentity=SI02/SI04时必传
		// map.put("unitEnterDate", "2009-01");
		// //- 参加工作时间，格式为yyyy-MM，userIdentity=SI02/SI04时必传
		// map.put("unitStartDate", "2009-01");
		// //- 工作单位名称，userIdentity=SI02/SI04时必传
		// map.put("unitName", "拉不拉卡公司");
		// //- 工作单位地址省份编码，值为国家统计局最新县及县以上行政区划代码，userIdentity=SI02/SI04时必传
		// map.put("unitProvinceCode", "500000");
		// //- 工作单位地址城市编码，值为国家统计局最新县及县以上行政区划代码，userIdentity=SI02/SI04时必传
		// map.put("unitCityCode", "500100");
		// //- 工作单位地址区县编码，值为国家统计局最新县及县以上行政区划代码，userIdentity=SI02/SI04时必传
		// map.put("unitTownCode", "500112");
		// //- 工作单位详细地址，userIdentity=SI02/SI04时必传
		// map.put("unitDetailAddress", "测试无地址");
		// //- 工作单位企业类型，可选值见数据字典，userIdentity=SI02/SI04时必传
		// map.put("unitBusinessType", DataEnum.UNIT_BUSINESS_TYPE_F.getCode());
		// //- 工作单位所属行业，可选值见数据字典
		// map.put("unitIndustry", DataEnum.UNIT_INDUSTRY_J.getCode());
		// //- 工作内容从事职业，可选值见数据字典，userIdentity=SI02/SI04时必传
		// map.put("unitOccupation", DataEnum.UNIT_OCCUPATION_1.getCode());
		// //- 工作月收入，单位：分，最多允许99999999分，userIdentity=SI02/SI04时必传
		// map.put("unitMonthIncome", 10000000);
		// }
		// - 客户信用记录，可选值见数据字典
		// map.put("userCredit", );
		// - 客户居住状况，可选值见数据字典
		// map.put("userHousing", "3");
		// - 客户车产情况，可选值见数据字典
		// map.put("userCarInfo", );
		// - 担保方式：0--未知，1--信用贷
		// map.put("warrantMode", );
		// - 金融机构：0--未知，1--消费金融公司
		// map.put("financeOrganize", );
		// - 申请单文件JSON对象
		// map.put("fileList", );
		// - 联系人信息

		// Map<String, String> fileListMap11 = new HashMap<>();
		// fileListMap11.put("fileId", "33");
		// fileListMap11.put("fileCategory", "F");
		// Map<String, String> fileListMap22 = new HashMap<>();
		// fileListMap22.put("fileId", "33");
		// fileListMap22.put("fileCategory", "R");
		// Map<String, String> fileListMap33 = new HashMap<>();
		// fileListMap33.put("fileId", "33");
		// fileListMap33.put("fileCategory", "P");
		// Map<String, String> fileListMap44 = new HashMap<>();
		// fileListMap44.put("fileId", "33");
		// fileListMap44.put("fileCategory", "W");
		// List<Map<String, String>> fileList = new ArrayList<>();
		// fileList.add(fileListMap11);
		// fileList.add(fileListMap22);
		// fileList.add(fileListMap33);
		// fileList.add(fileListMap44);
		// map.put("fileList", fileList);
		// - 附加信息
		// map.put("addonsList", );
		// - 客户端类型，可选值：IOS、Android、WeChat、PCBrowser、MobileBrowser

		// - 客户端版本号，clientType=IOS或Android时传系统版本号，其余传浏览器版本号
		// map.put("clientVersion", );
		// - 客户端发行渠道，即客户端获取来源，比如appstore
		// map.put("clientChannel", );
		// - 客户端内部版本号，clientType=IOS或Android时传App的，其余传浏览器版本号即可
		// map.put("clientInVersion", );
		// - 客户端制造商，clientType=IOS或Android时传手机制造商，其余传浏览器名即可
		// map.put("clientCompany", );
		// - 客户端品牌，clientType=IOS或Android时传手机牌子，其余传浏览器名即可
		// map.put("clientTradeMark", );
		// - 客户端型号，clientType=IOS或Android时传手机型号，其余传浏览器版本号即可
		// map.put("clientModels", );
		// - 客户端编译ID，clientType=IOS或Android时传App编译ID，其余传浏览器版本号即可
		// map.put("clientCompileId", );
		// - 客户端IMEI
		// map.put("clientIMEI", );
		// - 客户端GPS
		// map.put("clientGPS", );
		// - 客户端网络，可选值：0--无，1--WIFI，2--2G，3--3G，4--4G，5--5G，9--其它
		// map.put("clientNetwork", "");
		// - 后台通知URL，通知参数同3.1章节请求参数，该参数暂时不完全生效，可不传
		// map.put("notifyUrl", );
		// - 申请单查询或前后台通知时原封不动返回给合作方，该参数暂时不完全生效，可不传
		// map.put("state", );
		// - 授权查询征信报告 Y 或 N
		// map.put("grantQueryPBOC", "Y");
		// - 授权查询社保信息 Y 或 N
		// map.put("grantQuerySocialInsurance", "Y");
	}

}
